package com.zkh.myutils.database.dbpool;

import java.util.HashMap;
import java.util.Map;

import com.zkh.myutils.database.DatabaseException;

/**
 * 数据源适配器
 * @author zkh
 */
public class DataSourceAdapter {
	//数据源（支持多数据源）
	private static Map<String, DbPoolDataSource> dataSourceMap = new HashMap<String, DbPoolDataSource>();
	
	/**
	 * 获取默认数据源
	 * @return
	 */
	public static DbPoolDataSource getInstanceOfDataSource() {
		return getInstanceOfDataSource(ConnectConfigure.getDefualtSource());
	}
	
	/**
	 * 获取指定数据源
	 * @return
	 */
	public static DbPoolDataSource getInstanceOfDataSource(String key) {
		//是否存在
		if(!ConnectConfigure.isKeyExist(key)) {
			throw new DatabaseException("配置中不存在指定key值的数据源");
		}
		//配置中存在数据源，检查是否初始化，若没有初始化，则初始化
		if(!dataSourceMap.containsKey(key)) {
			dataSourceMap.put(key, new DbPoolDataSource(key));
		}
		//返回初始化后的数据源
		return dataSourceMap.get(key);
	}
}
